package com.hyt.it.ogt.ks.model.entity;

import java.math.BigDecimal;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.hyt.core.base.BaseEntity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 考生考试过程表
 * </p>
 *
 * @author chengxh
 * @since 2020-06-17
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("ks_candidate_process")
@ApiModel(value="CandidateProcess对象", description="考生考试过程表")
@AllArgsConstructor
public class CandidateProcess extends BaseEntity {

    private static final long serialVersionUID = 1L;

    public CandidateProcess() {}

    @ApiModelProperty(value = "考试项目")
    private String examId;

    @ApiModelProperty(value = "试卷ID")
    private String paperId;

    @ApiModelProperty(value = "试卷版本号")
    private String paperVersion;
    
    @ApiModelProperty(value = "试卷版类型")
    private String paperMode;

    @ApiModelProperty(value = "试卷总分")
    private BigDecimal paperScore;

    @ApiModelProperty(value = "考生ID")
    private String candidateId;

    @ApiModelProperty(value = "准考证")
    private String admissionNumber;

    @ApiModelProperty(value = "10：已登录；20：已开考；21:中断；30：已交卷；40：缺考；")
    private Integer examStatus;

    @ApiModelProperty(value = "总分")
    private BigDecimal score;

    @ApiModelProperty(value = "客观题总分")
    private BigDecimal objectiveScore;

    @ApiModelProperty(value = "主观题总分")
    private BigDecimal subjectiveScore;

    @ApiModelProperty(value = "登录次数")
    private Integer loginCount;

    @ApiModelProperty(value = "开始时间")
    private LocalDateTime beginTime;

    @ApiModelProperty(value = "结束时间")
    private LocalDateTime endTime;

    @ApiModelProperty(value = "是否强制收卷，1(true)表示是，0(false)表示否")
    @TableField("is_forbid_finish_exam")
    private Boolean forbidFinishExam;

    @ApiModelProperty(value = "是否已经开考（以获取小题号接口为准），1(true)表示是，0(false)表示否")
    @TableField("is_started_exam")
    private Boolean startedExam;

    @ApiModelProperty(value = "移动端登陆状态：0：未登录，1：已登录")
    private Integer mobileLoginStatus;

    @ApiModelProperty(value = "是否已经拍照")
    @TableField("is_take_picture")
    private Boolean takePicture;

    @ApiModelProperty(value = "是否已经做过身份验证")
    @TableField("is_checked_id_card")
    private Boolean checkedIdCard;

    @ApiModelProperty(value = "考生重考次数，默认从0开始")
    @TableField("redo_exam_count")
    private Integer redoExamCount;

    @ApiModelProperty(value = "历史最高分对应的答案版本号")
    @TableField("max_score_ver")
    private Integer maxScoreVer;

    @ApiModelProperty(value = "试卷时长")
    private Long paperTimeLength;

    @ApiModelProperty(value = "密号")
    private String passwordNumber;

    @ApiModelProperty(value = "交卷类型：1-自动交卷，2-管理端强制交卷，3-切屏次数交卷，4-倒计时为0交卷")
    private Integer finishType;

    @ApiModelProperty(value = "切屏次数")
    private Integer changScreenNumber;

    @ApiModelProperty(value = "登录设备类型")
    private String deviceType;

    @ApiModelProperty(value = "其他分数")
    private BigDecimal otherScore;

    @ApiModelProperty(value = "人脸核身验证失败次数")
    private Integer faceNum;

}
